from flask import jsonify
from werkzeug.http import HTTP_STATUS_CODES

def register_error_handlers(app):
    @app.errorhandler(400)
    def bad_request_error(error):
        return jsonify({
            'code': 400,
            'message': HTTP_STATUS_CODES.get(400, 'Bad Request'),
            'errors': error.description.get('errors') if hasattr(error, 'description') else []
        }), 400

    @app.errorhandler(404)
    def not_found_error(error):
        return jsonify({
            'code': 404,
            'message': HTTP_STATUS_CODES.get(404, 'Not Found')
        }), 404

    @app.errorhandler(500)
    def internal_error(error):
        return jsonify({
            'code': 500,
            'message': HTTP_STATUS_CODES.get(500, 'Internal Server Error')
        }), 500